import axios from 'axios'
import { eachProp, isNull } from '../utils/Object'

const server = axios.create({
    baseURL: "/api",
    timeout: 30000
})

// get 请求，将request中的data，包装到url中
function wrapParamUrl(originUrl, data) { 
    let url = `${originUrl}`;
    if (data) {
        // console.log(data);
        eachProp(data, prop => {
            if (!isNull(data[prop])) {
                url += `${prop}=${data[prop].toStrong()}&`
            }
        })
        // 删除最后拼接的&
        url = url.substring(0, url.length)
        return url
    }
}

// 配置请求拦截器
server.interceptors.request.use(config => {

    // 将请求方式统统设置为大写
    const method = String(config.method).toUpperCase();

    if (method === 'POST') {
        // ppost 请求需要配置的地方
    } else if (method === 'GET') { // 如果是get请求则将data中的参数拼接到url中
        config.url = wrapParamUrl(config.url, config.data);
    }

    return config;
}, err => Promise.reject(err));

// 配置响应拦截器
server.interceptors.response.use(config => {
    // 将处理的config 吐出
    return config;
}, err => Promise.reject(err));

export default server